package cn.zhukelili.base;

/**
 * @Description: 场景类
 * @Auther: hongheshou
 * @Date: 2018/7/23 09:05
 */
public class Client {
    public static void main(String[] args) {
        //创建一个处理信件的过程
        ILetterProcess letterProcess = new LetterProcessImpl();
        //开始写信
        letterProcess.writeContext("Hello,It's me,doubledispatch you know who I am? I'm your old lover. I'd like to...");
        //开始写信封
        letterProcess.fillEnvelope("Happy Road No. 666,God Province,Heaven");
        //把信放到信封里，并封装好
        letterProcess.letterInotoEnvelope();
        //跑到邮局把信塞到邮箱，投递
        letterProcess.sendLetter();
    }
}

/*
我们回过头来看看这个过程，它与高内聚的要求相差甚远，更不要说迪米特法则、接口
隔离原则了。你想想，你要知道这4个步骤，而且还要知道它们的顺序，一旦出错，信就不
可能邮寄出去，这在面向对象的编程中是极度地不适合，它根本就没有完成一个类所具有的
单一职责。
还有，如果信件多了就非常麻烦，每封信都要这样运转一遍，非得累死，更别说要发个
广告信了，那怎么办呢？还好，现在邮局开发了一个新业务，你只要把信件的必要信息告诉
我，我给你发，我来完成这4个过程，只要把信件交给我就成了，其他就不要管了。非常好
的方案！
 */
